/// <summary>
/// A 2D generic point.
/// Specific to scripts: this generic type is not exposed, only the typedefs are.
/// </summary>
template<typename T>
struct Point2
{
public:
	/// <summary>The X value</summary>
	T X;

	/// <summary>The Y value</summary>
	T Y;

	/// <summary>
	/// Initializes a new instance of the <see cref="Point2&lt;T&gt;" /> struct, assigning all values to zero.
	/// </summary>
	Point2();

	/// <summary>
	/// Initializes a new instance of the <see cref="Point2&lt;T&gt;" /> struct.
	/// </summary>
	/// <param name="x">The x.</param>
	/// <param name="y">The y.</param>
	Point2(const T &x, const T &y);

	/// <summary>
	/// Initializes a new instance of the <see cref="Point2&lt;T&gt;" /> struct.
	/// </summary>
	/// <param name="p">The point to copy values from.</param>
	Point2(const Point2 &p);
}